package metier;
/**
 * classe décrivant les caractéristiques d'un Contrat défini par:
 * 	un id : entier permettant de l'identifier  
 * 	l'objet du contrat et le nom du client concerné par ce contrat (chaînes de caractères)
 * @author Michele Lamballais
 *
 */
public class Contrat {
	
		/**
    	 * Attributs priv�s de la classe Contrat
    	 * id de type integer
    	 * objetContrat et nomClient de type String
    	 */
        private long id;
        private String objetContrat;
        private String nomClient;
        
        /**
         * constructeur de la classe Contrat
         * @param unObjetContrat
         * @param unNomClient
         */
               
        public Contrat (String unObjetContrat, String unNomClient){
        	this.id = 0;
            this.objetContrat = unObjetContrat;
            this.nomClient = unNomClient;
        }

        /**
         * constructeur de la classe Contrat
         * @param unId
         * @param unObjetContrat
         * @param unNomClient
         */
               
        public Contrat (long unId, String unObjetContrat, String unNomClient){
        	this.id = unId;
            this.objetContrat = unObjetContrat;
            this.nomClient = unNomClient;
        }

        // methodes accesseurs
        
        /**
         * fonction getid() : entier 
         * @return la valeur de l'attribut id
         */
        public long getId(){
            return this.id;
        }

        /**
         * fonction getObjetContrat() : entier 
         * @return la valeur de l'attribut objetContrat
         */
        
        public String getObjetContrat(){
            return this.objetContrat;
        }

        /**
         * fonction getNomClient() : entier 
         * @return la valeur de l'attribut nomClient
         */
        public String getNomClient(){
            return this.nomClient;
        }

        /**
         * procedure setObjetContrat(une chaine de carateres)
         * @param unObjetContrat
         */
        public void setObjetContrat(String unObjetContrat){
            this.objetContrat= unObjetContrat;
        }

       /**
        * procedure setNomClient(une chaine de carateres)
        * @param unNomClient
        */
        public void setNomClient(String unNomClient){
            this.nomClient = unNomClient;
        }
     

        // autres m�thodes 
        /**
         * fonction estEgal(Contrat): booleen
         * @param unContrat
         * @return true si les 2 objets sont identiques
         *         false s'ils sont diff�rents
         */
        public boolean equals(Contrat unContrat){
            if (this.id != unContrat.id) return false;
            if (! this.objetContrat.equals( unContrat.objetContrat)) return false;
            if (! this.nomClient.equals( unContrat.nomClient)) return false;
            return true;
        }

       
        /**
         * fonction toString(): chaine de caract�res
         * @return objet converti en chaine
         */
        public   String toString(){
            String msg = "";
            msg = ((Long) this.id).toString() + " " + this.objetContrat + " "+ this.nomClient;
            return msg;
        }
        
        /**
         * fonction toStringDescriptif(): chaine de caract�res
         * @return objet converti en chaine avec commentaire
         */
        public String toStringDescriptif() {
        	String msg = "";
            msg = "id : "+ ((Long) this.id).toString() + "\n" ;
            msg += "objet du contrat : " + this.objetContrat + "\n";
            msg += "nom du client : " + this.nomClient;
            return msg;
        }

}
